<?php

include DIRETORIO."app/Models/UserGroupDAO.php";

class C_UserGroup{
	
	protected static $lk = NULL;
	
	public static function init(){
		global $db_Mysql;

		self::$lk = $db_Mysql;
	}

	public static function getDB(){
		if(self::$lk == NUll)
			self::init();

		return self::$lk;
	}

	public static function getGroups(){
		$return = null;

		$objUserGroupDAO = new UserGroupDAO(self::getDB());
		$objGroups		 = $objUserGroupDAO->getGroups(true);
		
		if(count($objGroups) > 0){
			$html = '<ul class="groups">';

			foreach($objGroups as $row){
				$statusName = $row->status == 1?'Ativa':'Invativa';

				$html .= '	<li id="group_'.$row->idUserGroup.'">
								<div class="description">
									<span class="title">Nome: '.$row->title.'</span>
									<span><strong class="count_users">'.$row->users.'</strong> Usuário(s)</span>
								</div>
							</li>';
			}
			
			$html .= '</ul>';
			$return[] = true;
		}else{
			$html = "<h2>Nenhum registro encontrado!</h2>";
			$return[] = false;
		}
	
		$return[] = $html;	
		return json_encode($return);
	}

	public static function getGroupsSimple(){
		$objUserGroupDAO = new UserGroupDAO(self::getDB());
		$objGroups		 = $objUserGroupDAO->getGroups(true);
		
		if(count($objGroups) > 0)
			$return	= array(true,$objGroups);
		else
			$return	= array(false,"NULL");
		
		return json_encode($return);
	}

	public static function getUsersGroup($post){
		$return = null;
		
		$idGroup	= (int)$post['idGroup'];

		$objUserGroupDAO = new UserGroupDAO(self::getDB());
		$objUsersGroup	 = $objUserGroupDAO->getUsersGroup(0,$idGroup);	
		
		if(count($objUsersGroup) > 0){
			$html = '<ul>';

			foreach($objUsersGroup as $row){
				$html .= self::buildBoxUser($row);
			}

			$html .= '</ul>';
			$return[] = true;
		}else{
			$html = '<ul><li><h2>Nenhum usuário atribuido!</h2></li></ul>';
			$return[] = false;
		}
	
		$return[] = $html;	
		return json_encode($return);
	}

	public static function buildBoxUser($userGroup){

		$html	= '	<li>
						<div class="user" id="userGroup_'.$userGroup->idUser.'-'.$userGroup->idUserGroup.'">
							<span class="title_bar">
								<span>'.$userGroup->name.'</span>
							</span>
							<span class="title">Grupo: '.$userGroup->group.'<button class="expand">+</button>
							</span>
							<div class="details">
								<span>
								Login: '.$userGroup->login.'<br>
								Email: '.$userGroup->email.'<br>
								Carga Horária: '.$userGroup->hourlyLoad.'<br>
								Data de Entrada: '.$userGroup->dateCreation.'<br>
								</span>
							</div>
							<div class="buttons">
								<a onclick="deleteUserGroup('.$userGroup->idUser.','.$userGroup->idUserGroup.')" href="javascript:void(0);" class="icon delete"><span>deletar</span></a>
								<a onclick="editUser('.$userGroup->idUser.')" href="javascript:void(0);" class="icon edit"><span>editar</span></a>
							</div>								
						</div>
					</li>';

		
		return $html;
	}

	public static function saveUserGroup($post){
		$return  = array(false,"Não foi possível atribuir o usuário no grupo!");
		$idUser	 = (int)$post["idUser"];
		$idGroup = (int)$post["idGroup"];
		
		if($idUser > 0 && $idGroup > 0){
			$objUserGroupDAO = new UserGroupDAO(self::getDB());

			$result = $objUserGroupDAO->getUsersGroup($idUser);

			if(count($result) == 0){
				$result	= $objUserGroupDAO->save($post);
				if($result)
					$return = array(true,"O usuário foi atribuído no grupo com sucesso!");
			}else{
				if($result[0]->idUserGroup == $idGroup)
					$return  = array(false,"Este usuário já pertence a este grupo!");
				else
					$return  = array(false,"Este usuário pertence ao grupo <i>".$result[0]->group."</i>!");
			}
		}
		
		return json_encode($return);
	}


	public static function changeUserGroup($post){
		$objUserGroupDAO	= new UserGroupDAO(self::getDB());
		
		$result		= false;
		$idUser		= (int)$post[idUser];
		$idGroup	= (int)$post[idGroup];
		$idNewGroup	= (int)$post[idNewGroup];

		if($idUser > 0 && $idGroup > 0 && $idNewGroup > 0)	
			$result			= $objUserGroupDAO->changeUserGroup($post);
		

		if($result)
			$return = array(true,"O grupo do usuário foi trocado com sucesso!");
		else
			$return = array(false,"Não foi possível trocar o grupo do usuário!");


		return json_encode($return);
	}

	public static function deleteUserGroup($post){	
		$objUserGroupDAO	= new UserGroupDAO(self::getDB());

		$idUser = (int)$post[idUser];
		$idGroup = (int)$post[idGroup];

		if($idUser > 0 && $idGroup > 0)
			$result = $objUserGroupDAO->deleteUserGroup($idUser, $idGroup);

		if($result > 0)
			$return = array(true,"Usuário deletado do grupo com sucesso!");
		else
			$return = array(false,"Erro, não foi possível deletar o usuário do grupo!");

		return json_encode($return);
	}
}
?>